技術問答
技術文章
iT 徵才
聊天室
2025 鐵人賽
登入/註冊
問答
文章
Tag
邦友
鐵人賽
搜尋
2023 iThome 鐵人賽
DAY
15
0
Software Development
從實戰中學習:Take Home Assignment review & refactor
系列 第
15
篇
[Day 15] 作業三:平台產品銷售收費機制的收銀系統 -專案review
15th鐵人賽
take home assignment
golang
Moscle.dev
2023-09-29 19:15:04
350 瀏覽
分享至
平台產品銷售收費機制的收銀系統 -專案review
專案Repo
Readme review
首先來分析作業的
Readme
,
標題與描述:
"BitGin Assignment"這個標題雖然直接,但可以更符合作業內容的標題。
在"敘述"部分,可以加上一個簡短的一句話摘要,描述這是什麼,例如:"這是一個用Golang實作的平台收銀系統,支援多種收費模式。"
使用方式:
使用的變數命名可以讓用戶更容易理解,例如goodPrice可以更名為productPrice。
可以加入註解以幫助使用者理解每一步的用途。例如,在system := &cashier.ChargingSystem{...}這行後面,可以加入:// 初始化收銀系統。
額外建議:
安裝指南:
可以提供從安裝到執行程式的步驟
測試:
有單元測試,應該提供如何執行這些測試。
錯誤處理和日誌:
如果程式碼中包含錯誤處理或日誌,可以在README中提供一些範例或說明。
格式和結構:
在段落之間加入一些空行,可以使內容看起來更加清楚。
考慮使用列表 (bulleted 或 numbered list) 來組織某些信息,例如主要收費模式。
目錄結構 review
分層結構:
已經適當地將核心業務邏輯(cashier)和指令應用程式(cmd)區分開來,這是常見的Go專案結構。
cashier package:
如果每種收費模式的邏輯都較為複雜,考慮將每種模式分成其自己的檔案,例如normal.go, vip.go, points.go等。
cashier_test.go應該包含了各種情境的單元測試。考慮增加邊際情況的測試和當平台舉行優惠活動時的測試。
cmd package:
main.go是一個簡單的命令行界面,主要的邏輯在cashier package中。
可以考慮加入指令參數或配置選項來使程式更具彈性。
README.md:
確保提供清晰的說明、使用方式、安裝指南等。
.gitignore:
確保.gitignore包含了Go常見的忽略項目,例如*.exe, *.out, /vendor/, *.log, .DS_Store等。
其他:
若有多種收費策略,可能會需要一個策略模式或其他適合的設計模式。檢查cashier.go是否已經考慮到這一點。
若專案可能會進行擴充,考慮使用interface進行解耦,以確保後續增加新的收費模式時不會影響既有的程式。
留言
追蹤
檢舉
上一篇
[Day 14] 作業三:平台產品銷售收費機制的收銀系統 - 需求檢視
下一篇
[Day 16] 作業三:平台產品銷售收費機制的收銀系統 - Code review
系列文
從實戰中學習:Take Home Assignment review & refactor
共
30
篇
目錄
RSS系列文
訂閱系列文
11
人訂閱
26
[Day 26] Simple Auth App:專案始動
27
[Day 27] Simple Auth App:ORM & DB setting
28
[Day 28] Simple Auth App:註冊、登入實作
29
[Day 29] Simple Auth App : 修復TypeORM 問題與DataSource
30
[Day 30] Simple Auth App : 來做個收尾
完整目錄
熱門推薦
{{ item.subject }}
{{ item.channelVendor }}
|
{{ item.webinarstarted }}
|
{{ formatDate(item.duration) }}
直播中
立即報名
尚未有邦友留言
立即登入留言
iThome鐵人賽
參賽組數
902
組
團體組數
37
組
累計文章數
19850
篇
完賽人數
528
人
看影片追技術
看更多
{{ item.subject }}
{{ item.channelVendor }}
|
{{ formatDate(item.duration) }}
直播中
熱門tag
15th鐵人賽
16th鐵人賽
13th鐵人賽
14th鐵人賽
17th鐵人賽
12th鐵人賽
11th鐵人賽
鐵人賽
2019鐵人賽
javascript
2018鐵人賽
python
2017鐵人賽
windows
php
c#
linux
windows server
css
react
熱門問題
關於最近的釣魚信件
FortiGate SSLVPN替代方案?
SSLVPN 轉 IPSEC VPN 的問題
iT邦幫忙如何搜尋 關鍵字?
Qnap帳號於同一個IP反覆登入失敗.
資產管理紀錄表單請教
熱門回答
FortiGate SSLVPN替代方案?
Qnap帳號於同一個IP反覆登入失敗.
關於最近的釣魚信件
資產管理紀錄表單請教
SSLVPN 轉 IPSEC VPN 的問題
熱門文章
c++的.h和cpp,放在相同目錄下好,還是頂層就用include,src分開好? [搬運/問答]
你的產品用了多少開源軟體?如何掌握潛在漏洞與風險?
【資料治理實戰回憶錄】01. 工欲善其事:雙平台驅動的基礎建設——為何我們需要「元數據」與「中台」並行?
Spring Boot 安全認證 — JWT 及 OAuth2 認證 (發文被切掉,補充
CompTIA A+ 220-1202 認證考試介紹|IT 入門必考國際證照
IT邦幫忙
×
標記使用者
輸入對方的帳號或暱稱
Loading
找不到結果。
標記
{{ result.label }}
{{ result.account }}